# # 例3-10
# import pandas as pd
# pd.set_option('display.unicode.east_asian_width',True)
# df=pd.DataFrame({'班级':['一班','一班','一班','二班','二班','二班'],
#                  '姓名':['刘武','王振','赵胜','赵霞','方芳','齐婷'],
#                  '语文':[85,102,96,126,130,135],
#                  '数学':[100,90,124,123,140,109],
#                  '英语':[83,110,123,103,135,90]})
# print('原始数据:\n',df)
# group1 = df.groupby('班级')
# print('以班级列按行分组:')
#
# for i in group1:
#     print(i)
# print('分组后一班的数据:\n',group1.get_group('一班'))
# print('每个班每个科目的平局成绩：\n',group1.agg('mean',numeric_only=True))
# group2 = df.groupby({'语文':'总成绩','数学':'总成绩','英语':'总成绩'},axis=1)
# print('以列标签按列分组:')
# for i in group2:
#     print(i)
# df['总成绩']=group2.agg('sum')
# print('添加成绩1—3月入职员工信息.xlsx后的数据:\n',df)
#
#
# #3-8
# import pandas as pd
# pd.set_option('display.unicode.east_asian_width',True)
# df=pd.read_excel('1—3月入职员工信息.xlsx',index_col=0,sheet_name=['1月','2月','3月','1月员工补充信息'])
# print('原始数据:\n',df)
# df1_1,df1_2 = df['1月'],df['1月员工补充信息']
# df2,df3 = df['2月'],df['3月']
# df1 = pd.merge(df1_1,df1_2)
# df_total = pd.concat([df1,df2,df3],ignore_index=True)
# print('导入的数据:\n',df_total)
# df_total = pd.read_excel('1—3月入职员工信息.xlsx',index_col=0)
#
# #(1)p91实践题（1）（2）
# import pandas as pd
# pd.set_option('display.unicode.east_asian_width', True)
# df = pd.DataFrame({'班级':['一班','一班','一班','二班','二班','二班'],
#                    '姓名':['刘武','王振','赵胜','赵霞','方芳','齐婷'],
#                    '语文': [85, 102, 96, 126, 130, 135],
#                    '数学': [100, 90, 124, 123, 140, 109],
#                    '英语': [83, 110, 123, 103, 135, 90]})
# print('原始数据：\n', df)
# group1 = df.groupby('班级')
# print('以key列按行分组：')
# for i in group1:						#循环输出分组结果
#     print(i)
# print('每个班每个科目的平均成绩：\n', group1.agg('mean',numeric_only=True))
# group2 = df.groupby({'语文': '总成绩', '数学': '总成绩', '英语': '总成绩'}, axis=1)
# print('以列标签按列分组：')
# for i in group2:						#循环输出分组结果
#     print(i)
# df['总成绩'] = group2.agg('sum')	#按行求和聚合计算每个学生的总成绩
# print('添加总成绩后的数据：\n', df)
#
# #(2)按行求均值聚合计算每个学生的平均成绩
# df['平均成绩'] = group2.agg('mean')
# # # 3. 计算每个班每个科目的平均成绩（关键修正：先筛选成绩列）
# # print('\n每个班每个科目的平均成绩：\n', group1[['语文', '数学', '英语']].agg('mean'))
# print('添加平均成绩后的数据：\n', df)
# bins_value = [0, 90, 110, 135, 150]
# labels_value = ['不合格', '中', '良', '优']
# df['等级'] = pd.cut(df['平均成绩'], bins=bins_value, right=False, include_lowest=True, labels=labels_value)
# print('根据平均成绩判断等级后的数据：\n', df)
#(3)
#1、
import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
df = pd.DataFrame({'year': [2019, 2020, None, 2020, 2022],
                   'month': [3, None, 6, 9, 12],
                   'day': [4, 2, 21, 2, 15]})
print('原始数据：\n', df)
#2、
df.fillna({'year': 2021, 'month': 9}, inplace=True)
print('替换缺失值后的数据：\n', df)
#3、
df.drop_duplicates(keep=False, inplace=True)
print('删除重复值后的数据：\n', df)
#4、
df['组合时间'] = pd.to_datetime(df)
print('添加组合时间后的数据：\n', df)